iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
影片教學

Node.js 實戰密技與辦公室的小壞壞:即戰力釋放讓總裁的心動瞬間系列 第 27

肖想可以用 GUI 工具管理 Docker 嗎?沒問題,Portainer 幫你搞定 Day27

  • 分享至 

  • xImage
  •  

Heroku 這類型的 Pass 服務優點就在於有完整的 GUI 介面可以使用,但是如果是自己架設的服務,例如 Docker,就沒有這麼方便了,必須使用指令才能查看目前運行中的容器狀況,比如說想看 logs,使用指令的話就必須:

  1. 使用 docker ps 查看目前運行中的容器,並取得要查看 logs 的容器 ID
  2. 使用 docker logs <container id> 查看 logs

使用以上的指令就能查看運行中的容器 logs,但是如果有很多個容器,就必須一個一個查看(而且當 logs 行數很多時...),這樣的方式實在是太麻煩了,所以今天要介紹的 Portainer 就是一個可以使用 GUI 介面管理 Docker 的工具,讓我們可以更方便的管理 Docker。

Yes
影片連結:https://youtu.be/o7ZPkruxRbg

環境安裝說明文件可以參考:https://www.casper.tw/development/2023/10/11/portainer/


本篇文章會介紹如何「如何在 Ubuntu 環境上加入 Portainer 工具,並且示範部署 Node.js 專案」,建議對於 Docker 操作有基本的經驗,以下是本文包含的流程:

  1. 在 Ubuntu 上安裝 Portainer 環境
  2. 從 Docker Hub 下載 Docker 映像檔並運行
  3. Portainer 環境的基本操作

在 Ubuntu 上安裝 Portainer 環境

在安裝 Portainer 前,請確保已經有先安裝 Docker 環境,如果還沒安裝可以先參考 本篇文章:在 Ubuntu 上加入 Docker 環境並部署 Node.js 專案,Portainer 是一個開源的容器管理工具,可以讓您輕鬆管理 Docker 或 Kubernetes,不過本系列文章只會聚焦在 Docker 上。

以下是在遠端 Ubuntu 伺服器上安裝 Portainer 的步驟:

  1. 下載 Portainer 映像
    使用以下指令下載 Portainer 的 Docker 映像:
sudo docker pull portainer/portainer-ce
  1. 建立 Portainer 容器
    使用以下指令建立 Portainer 容器,並將其綁定到主機的 9000 port:
sudo docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
  1. 瀏覽 Portainer

至此,Portainer 已經在您的主機上運行(沒錯,真的已經裝好了)。現在,您可以打開瀏覽器並訪問 http://伺服器IP:9000。應該能夠看到 Portainer 的登錄界面。第一次訪問時,需要設置管理員密碼,按照你的配置輸入帳密即可完成。

  1. 配置 Portainer
    藉此,Portainer 已經基礎配置完成,在嚮導流程中,可以在選擇 Get Started Docker 的選項,並且選擇 Local,這樣就可以看到本機運行中的 Docker 環境了。

https://ithelp.ithome.com.tw/upload/images/20231009/200836083VVBhV0wP1.png

https://ithelp.ithome.com.tw/upload/images/20231009/20083608Zu46U8rJYc.png

Portainer 運行中的容器

從 Docker Hub 下載 Docker 映像檔並運行

使用 Portainer 部署 Docker 映像檔,就不需要指令就能完成複雜流程,可以透過 Portainer 的介面,直接從 Docker Hub 下載映像檔,並且運行,以下是操作步驟:

  1. 在 Container 中點選 Add container

https://ithelp.ithome.com.tw/upload/images/20231009/20083608yxRVa98fgy.png

  1. 在 Image 中輸入 Docker Hub 上的映像檔名稱
    https://ithelp.ithome.com.tw/upload/images/20231009/200836084r2Wm805mf.png

注意:路徑中請不要帶入空白鍵,例如:casper723/nodejs-docker,而不是 casper723 / nodejs-docker

  1. 輸入 network、port、volume 等設定,最後按下 Deploy the container 就可以完成部署了
    https://ithelp.ithome.com.tw/upload/images/20231009/20083608sgO5DKak1h.png

稍等片刻,就可以在 Container 中看到剛剛部署的映像檔,並且可以透過 Portainer 的介面,直接操作映像檔,例如:啟動、停止、刪除等等。

https://ithelp.ithome.com.tw/upload/images/20231009/20083608aByqyvvAJZ.png

Portainer 環境的基本操作

過去,如果要透過 Docker 指令查看容器 logs 是相對麻煩的操作,但是透過 Portainer 就可以直接在介面上查看 logs。只要打開運行中的容器,點選 logs 就可以看到 logs 訊息了。

https://ithelp.ithome.com.tw/upload/images/20231009/200836089kkUZjBQzt.png

在 logs 訊息操作上,我會建議稍作以下的調整:

  1. 把行數調整為 1000 行(更大也行),這樣在瀏覽上可以看到更多的 logs 訊息
  2. 如果是已經找到相關要查看的片段,可以關閉 Auto-refresh,這樣就不會一直更新 logs 訊息了

https://ithelp.ithome.com.tw/upload/images/20231009/20083608WZ5tL1bdJx.png

然後再重啟策略上,先前必須在建置 container 時,就要設定重啟策略,但是透過 Portainer 就可以直接在介面上設定,回到 Container 的頁面,在下方就能看到 Restart policies 的設定。接下來直接下拉選擇後,按下 Update 就可以完成設定了。

https://ithelp.ithome.com.tw/upload/images/20231009/20083608dndekCtMi6.png

除此之外,Portainer 在免費的版本下就有許多功能可用(沒錯,他是可以另外付費的),少部分功能則需要另外付款才能開通,但在一開始的使用上,免費的功能就已經足夠了。


上一篇
Docker 搭配 GitHub Action,git push 達成自動化部屬 Day26
下一篇
Docker Compose 神器:一行指令部署 MongoDB 和 Node.js! Day28
系列文
Node.js 實戰密技與辦公室的小壞壞:即戰力釋放讓總裁的心動瞬間30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言